package org.jsola.hr.dto.attendrule;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.dto.BaseDTO;
import org.jsola.hr.dto.attendschedule.AttendPeriodDTO;

import java.util.List;

/**
 *考勤规则打卡时间
 *
 * @author wxz
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "新增【考勤规则打卡时间】的参数")
@Data
public class AttendRulePunchTimeAddDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /** 工作周;星期一,星期二 */
    @ApiModelProperty(notes = "工作周", example = "星期一,星期二")
    private List<String> workWeekList;

    /** 打卡时段; */
    @ApiModelProperty(notes = "打卡时段", example = "")
    private List<AttendPeriodDTO> periodList;

    @ApiModelProperty(notes = "休息时段", example = "")
    private AttendPeriodDTO restPeriod;

    /**
     * 是否高级设置
     */
    @ApiModelProperty(notes = "是否高级设置;true-是,false-否", example = "")
    private Boolean isAdvanc;

    /** 允许迟到早退；1-允许,0-不允许 */
    @ApiModelProperty(notes = "允许迟到早退", example = "1-允许,0-不允许")
    private Integer isAllowedLateEarly;

    /** 上班允许迟到(分钟). */
    @ApiModelProperty(notes = "上班允许迟到(分钟)", example = "")
    private Integer lateMinute;

    /** 下班允许早退(分钟). */
    @ApiModelProperty(notes = "下班允许早退(分钟)", example = "")
    private Integer earlyMinute;

    /** 允许晚走晚到;1-允许,0-不允许 */
    @ApiModelProperty(notes = "允许晚走晚到", example = "1-允许,0-不允许")
    private Integer isAllowLateLate;

    /** 下班晚走(分钟). */
    @ApiModelProperty(notes = "下班晚走(分钟)", example = "")
    private Integer offWorkLateMinute;

    /** 上班晚到(分钟). */
    @ApiModelProperty(notes = "上班晚到(分钟)", example = "")
    private Integer onWorkLateMinute;

    /** 最早上班打卡时间. */
    @ApiModelProperty(notes = "最早上班打卡时间(分钟)", example = "")
    private String earliestPunchTime;

    /** 最晚上班打卡时间. */
    @ApiModelProperty(notes = "最晚上班打卡时间(分钟)", example = "")
    private String latestOnPunchTime;

    /** 最早下班打卡时间. */
    @ApiModelProperty(notes = "最早下班打卡时间(分钟)", example = "")
    private String earliestOffPunchTime;

    /** 最晚下班打卡时间. */
    @ApiModelProperty(notes = "最晚下班打卡时间(分钟)", example = "")
    private String latestPunchTime;

    /** 下班是否需要打卡;1-是,0-否 */
    @ApiModelProperty(notes = "下班是否需要打卡", example = "1-是,0-否 ")
    private Integer afterWorkNeedPunch;

    @ApiModelProperty(notes = "考勤打卡时间ID", example = "")
    private String attendPunchTimeId;
}
